package com.buss.core.persistence;

import java.io.Serializable;

/**
 * 翻页实现类
 * @author
 *
 */
public class Pagination implements Paginalbe,Serializable {
/**
	 *
	 */
	private static final long serialVersionUID = 7449332621006904996L;

	private int curPageNo = 1;
	private int pageSize = 20;
	private int totalCount = 0;
	private int totalPage = 0;

	public int getCurPageNo() {
		if(curPageNo < 1){
			return 1;
		}
		return curPageNo;
	}

	public int getNextPageNo() {
		if(isLastPage()){
			return getCurPageNo();
		}
		return getCurPageNo() + 1;
	}

	public int getPageSize() {
		if(pageSize < 0){
			return 0;
		}
		return pageSize;
	}

	public int getPrePageNo() {
		if(isFirstPage()){
			return getCurPageNo();
		}
		return getCurPageNo() - 1;
	}

	public int getTotalCount() {
		if(totalCount < 0){
			return 0;
		}
		return totalCount;
	}

	public int getTotalPage() {

		if(getPageSize() == 0) return 0;
		totalPage = getTotalCount() / getPageSize();
		if(getTotalCount() % getPageSize() != 0 || totalPage == 0){
			return ++totalPage;
		}
		return totalPage;
	}

	public boolean isFirstPage() {
		return getCurPageNo() <= 1;
	}

	public boolean isLastPage() {
		return getCurPageNo() >= getTotalPage();
	}

	public void setCurPageNo(int curPageNo) {
		this.curPageNo = curPageNo;
	}

	public void setPageSize(int pageSize) {
		this.pageSize = pageSize;
	}

	public void setTotalCount(int totalCount) {
		this.totalCount = totalCount;

	}

	public int getStartNo() {
		return ((getCurPageNo() - 1)  * getPageSize());
	}
}
